﻿// 194. 抽签（挑战程序设计竞赛）.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//

#include <iostream>

using  namespace std;

/*


https://www.papamelon.com/problem/194


一个袋子中有 n 个数字纸片，每张上面都写了一个数字。

我们有 4 次机会，每次从袋子中选一个纸片，记录下数字，然后放回去（因此一个纸片可能多次被选中）。

当存在一个可能，使得 4 张纸片的数字总和等于 m，则输出 Yes，否则输出 No

输入
第一行输入整数 n(1≤n≤50)
第二行输入整数 m(1≤m≤10^8)
第三行输入 n 个整数，表示每个纸片上的数字 ki(1≤ki≤10^8)
输出
一行，Yes 或 No
样例 1
输入
3
10
1 3 5
输出
Yes
*/

const int N = 60;
int arr[N];

int n, m;

int main()
{
    cin >> n >> m;
    for (int i = 0; i < n; i++) {
        cin >> arr[i];
    }

    long long sum = 0;
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < n; j++) {
            for (int k = 0; k < n; k++) {
                for (int l = 0; l < n; l++) {
                    if (m == arr[i] + arr[j] + arr[k] + arr[l]) {
                        cout << "Yes" << endl; return 0;
                    }
                }
            }
        }
    }

    cout << "No" << endl;
    return 0;
}

